package com.xique.door.service;



import com.xique.door.bean.domain.ElevatorEvent;
import com.xique.door.bean.search.ElevatorOpenAndCloseDoorTimesSearch;
import com.xique.door.bean.vo.elevator.ElevatorEventStatisticVO;

import java.util.List;

/**
 * @author shd
 * @create 2021/10/14 9:58
 */
public interface IElevatorEventService {

    /**
     * 查询事件集合
     *
     * @param id 事件集合ID
     * @return 事件集合
     */
    public ElevatorEvent selectElevatorEventById(Long id);

    /**
     * 获取最新的事件记录
     * @author shd
     * @date 2021/10/13 15:55
     * @param elvId
     * @return com.jzy.oms.community.elevator.bean.domain.ElevatorRun
     */
    ElevatorEvent selectLastElevatorEventByElvId(Long elvId);

    /**
     * 查询事件集合列表
     *
     * @param elevatorEvent 事件集合
     * @return 事件集合集合
     */
    public List<ElevatorEvent> selectElevatorEventList(ElevatorEvent elevatorEvent);

    /**
     * 查询事件集合列表数量
     * @author shd
     * @date 2021/10/19 9:56
     * @param elevatorEvent
     * @return int
     */
    long selectElevatorEventListCount(ElevatorEvent elevatorEvent);

    /**
     * 电梯开关门次数统计
     * @author shd
     * @date 2021/10/21 14:13
     * @param search
     * @return int
     */
    long selectElevatorEventOpenAndCloseDoorTimes(ElevatorOpenAndCloseDoorTimesSearch search);

    /**
     * 根据地区统计梯开关门次数
     * @author shd
     * @date 2021/10/25 14:41
     * @param elvIds
     * @return long
     */
    long selectElevatorEventOpenAndCloseDoorTimesByElvIds(List<Long> elvIds);

    /**
     * 新增事件集合
     *
     * @param elevatorEvent 事件集合
     * @return 结果
     */
    public int insertElevatorEvent(ElevatorEvent elevatorEvent);

    /**
     * 新增事件集合
     *
     * @param list 故障集合
     * @return 结果
     */
    int insertElevatorEvents(List<ElevatorEvent> list);

    /**
     * 修改事件集合
     *
     * @param elevatorEvent 事件集合
     * @return 结果
     */
    public int updateElevatorEvent(ElevatorEvent elevatorEvent);

    /**
     * 批量删除事件集合
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteElevatorEventByIds(String ids);

    /**
     * 删除事件集合信息
     *
     * @param id 事件集合ID
     * @return 结果
     */
    public int deleteElevatorEventById(Long id);

    /**
     * 频繁时段数据统计
     * @author shd
     * @date 2021/10/20 8:57
     * @param elvId 
     * @return java.util.List<com.jzy.oms.community.elevator.bean.vo.ElevatorEventStatisticVO>
     */
    List<ElevatorEventStatisticVO> selectElevatorEventStatisticByElvId(Long elvId);
}
